# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2022/9/17 0017 7:53
@Author : 测试开发工程师
@File : 2. bash 脚本的编写.py
@Software: PyCharm
============================
"""

"""
Bash 基本使用
    
    read 命令：
    read 命令是用于从终端或者文件中读取输入的内部命令
    读取整行输入
    每行末尾的换行不被读入
    
    read 命令使用：
    从标准输入读取输入并赋值给变量   read var
    从标准输入读取多个内容  read var1 var2 var3
    不指定变量（默认赋值给REPLY） read -> echo $REPLY
    
    脚本参数传递：
    $0 脚本名称                                                      
    $1-$n 获取参数
    $# 传递到脚本的参数个数
    $$ 脚本运行的当前进程ID
    $* 以一个单子符串显示所有向脚本传递的参数
    $? 显示最后命令的退出状态。0表示没有错误，其他任何值表明有错误
    
    例子： 新建文件 test.sh    执行时： bash test.sh 1 2 3
        #! /bin/bash
        echo $1,$2,$3           -> 1 2 3 
        echo "文件名 " $0       -> 文件名 test.sh
        echo "参数数量 " $#     -> 参数数量 3
        echo "all " $*          -> all 1 2 3 
        echo "return " $?       -> return 0
    
    基本运算: 反引号(键盘1的左边)
    a=10, b=20
    + 加法 ->  `expr $a + $b` 结果为 30
    - 减法 ->  `expr $a - $b` 结果为 -10
    * 乘法 ->  `expr $a \* $b` 结果为 200
    - 除法 ->  `expr $a / $b` 结果为 0.5
    % 取余 ->  `expr $a % $b` 结果为 10
    = 赋值 ->  a=$b 将把变量b 的值赋给 a
    == 相等 ->  相同则返回 true:[ $a == $b ]返回 true
    != 不相等 ->  不相同则返回true:[ $a != $b ]返回 true
    
   算数运算符：
    -eq : 检测相等 [ $a -eq $b ] 
    -ne : 检测不相等 [ $a -ne $b ]
    -gt : 检测左边是否大于右边 [ $a -gt $b ] 
    -lt : 检测左边是否小于右边 [ $a -lt $b ]
    -ge : 检测左边是否大于等于右边 [ $a -ge $b ] 
    -le : 检测左边是否小于等于右边 [ $a -le $b ]
    
    例子：
    if [ $a == $b ]
    then
        echo "eqal"
    fi
    
bash 与 linux 命令组合
    bash 与目录命令
    创建目录并生成文件
        mkdir test
        cd test
        echo 'hello' > test.txt
        ls
        
    例子：创建 test,sh脚本。最后 查看目录  ls ， 会多出 test.txt文件
    #! /bin/bash
    mkdir test
    cd test
    echo 'hello' > test.sh
    cat test.txt
    
    
    
    bash 与 内存，配合 三剑客
    统计内存使用
    for i in `ps aux | awk '{print $6}' | grep -v 'RSS'`
        count=$[$count+$i]
    echo '$count/kb'
    
    


"""